1   /*
2    * Copyright (C) 2012 The Guava Authors
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5    * in compliance with the License. You may obtain a copy of the License at
6    *
7    * http://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software distributed under the License
10   * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11   * or implied. See the License for the specific language governing permissions and limitations under
12   * the License.
13   */
14  
15  package com.google.common.collect.testing.google;
16  
17  import static com.google.common.truth.Truth.assertThat;
18  
19  import com.google.common.annotations.GwtCompatible;
20  import com.google.common.collect.ListMultimap;
21  
22  import java.util.Arrays;
23  import java.util.Collection;
24  
25  /**
26   * Superclass for all {@code ListMultimap} testers.
27   *
28   * @author Louis Wasserman
29   */
30  @GwtCompatible
31  public class AbstractListMultimapTester<K, V>
32      extends AbstractMultimapTester<K, V, ListMultimap<K, V>> {
33  
34    protected void assertGet(K key, V... values) {
35      assertGet(key, Arrays.asList(values));
36    }
37  
38    protected void assertGet(K key, Collection<V> values) {
39      assertThat(multimap().get(key)).has().exactlyAs(values).inOrder();
40  
41      if (!values.isEmpty()) {
42        assertThat(multimap().asMap().get(key)).has().exactlyAs(values).inOrder();
43        assertFalse(multimap().isEmpty());
44      } else {
45        assertThat(multimap().asMap().get(key)).isNull();
46      }
47  
48      assertEquals(values.size(), multimap().get(key).size());
49      assertEquals(values.size() > 0, multimap().containsKey(key));
50      assertEquals(values.size() > 0, multimap().keySet().contains(key));
51      assertEquals(values.size() > 0, multimap().keys().contains(key));
52    }
53  }
54